package models

import (
	"gorm.io/driver/mysql"
	"gorm.io/gorm"
	"test_singo/utils"
	"time"
)

var DB *gorm.DB

func DatabaseInit(conn_str string) {
	db, err := gorm.Open(mysql.Open(conn_str), &gorm.Config{})
	if err != nil {
		utils.Log().Panic("连接数据库不成功！", err)
	}
	// 开启日志可以在代码中直接调用db.Debug()

	// 也没有提供db.close()

	sqlDB, err := db.DB()

	// SetMaxIdleConns 设置空闲连接池中连接的最大数量
	sqlDB.SetMaxIdleConns(10)

	// SetMaxOpenConns 设置打开数据库连接的最大数量。
	sqlDB.SetMaxOpenConns(100)

	// SetConnMaxLifetime 设置了连接可复用的最大时间。
	sqlDB.SetConnMaxLifetime(time.Second * 30)

	DB = db

	DB_Migration()
}
